#if !defined(AFX_TABULATIONSURFACE_H__D6B314FF_D458_4C8A_9FF8_8A37F297B3F9__INCLUDED_)
#define AFX_TABULATIONSURFACE_H__D6B314FF_D458_4C8A_9FF8_8A37F297B3F9__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// TabulationSurface.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CTabulationSurface window

#include "BaseSurface.h"

class CTabulationSurface : public CBaseSurface
{
// Construction
public:
	CTabulationSurface(CBasePanel * pPanel);

// Attributes
protected:
  CListCtrl m_listctrl;
  int m_nSortingColumn;
  bool m_bSortAscending;

// Operations
public:
  virtual bool Create(CWnd * pParentWnd);
  virtual void Paint(CDC& dc);
  virtual void UpdateDefinitionDisplay(BaseCoalMineUnit * pCoalMineUnit);
  virtual void UpdateDataDisplay(BaseCoalMineUnit * pCoalMineUnit, BaseMonitoringUnit * pMonitoringUnit);
  virtual void ApplyOptions(DWORD dwOptionPagesMask);

protected:
  static int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
  
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTabulationSurface)
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CTabulationSurface();

	// Generated message map functions
protected:
	//{{AFX_MSG(CTabulationSurface)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
  afx_msg void OnItemclickListCtrl(NMHDR* pNMHDR, LRESULT* pResult); 
	//}}AFX_MSG
	afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_TABULATIONSURFACE_H__D6B314FF_D458_4C8A_9FF8_8A37F297B3F9__INCLUDED_)
